The present invention is generally directed to the monitoring of memberships and the states of one group or groups in a single system or a cluster system or cluster systems, such as in a multi-node computer system and its application to a number of such environments including its application to Group Services.
A group is an abstract collection of the specific entities like network adapters, cluster nodes, or distributed application processes in a clustered system. For example, an Ethernet adapter group represents a set of all Ethernet adapters in a cluster, and a cluster-aware application “X” may consist of a set of processes of the application “X” in a cluster.
The membership of the group refers to a set of each element in a group. A membership of an Ethernet adapter group may be a list of IP addresses that are in the cluster. Typically an active (or current) membership refers to the members that are active in a cluster (e.g., UP, reachable, etc). In other words, if a member is in the active membership, it is considered as working, active, reachable, or detectable in the cluster. If not, the member is considered as down, inactive, unreachable, or undetectable. The state can be anything specified by the applications.
Many cluster-aware applications subscribe and monitor the several memberships without joining them, and decide the next action based on the membership changes or state changes. For example, an application subscribes a network adapter group to monitor the network connectivity. If an adapter is up or down, the application reacts to it.
However, in some cases, if there is no member in the group, the application has to keep trying to subscribe the group periodically because subscribing to the empty group would fail with the Group Services system.
This periodical re-subscription exposes a serious drawback in performance especially when the system software needs to use the system resource. Furthermore, if an existing group is dissolved, the application's subscription is also dissolved, the application may need to re-subscribe to the group. This adds software logic complexity.
Thus, what is needed is an improved system and method that eliminates the need to re-subscribe to a group after a group member becomes inactive or after the group is dissolved. Furthermore, the improved system and method should be compatible with existing group membership systems.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.